<?php
//----------------------------------
//
// Alameda 0.1a (PSA)
//         Portal Script Adaptable
//
//----------------------------------
// Dario Diaz Videla 2004.
//----------------------------------
// Clase psa_tabla
// Creacion de Tablas Html.
//----------------------------------
class psa_tabla {
        var $borde;
        var $ancho;
        var $alineacion;
        var $filas;
        var $extras;
        var $padding;
        var $spacing;

        function psa_tabla() {
        #------------------------------------------------------------------------
        # Funcion que se ejecuta cada vez que se crea un objeto de la clase tabla
        #------------------------------------------------------------------------
                $this->borde                 = "1";
                $this->ancho                 = "100%";
                $this->alineacion            = "LEFT";
                $this->extras                = "";
                $this->padding               = 0;
                $this->spacing               = 0;
        }

        function masfila( $nCol, $Color = "" ) {
        #------------------------------------------------------------------------
        # Agrega una fila mas a la tabla
        #------------------------------------------------------------------------
                $ult = sizeof($this->filas) + 1;
                For ($i=1; $i<= $nCol; $i=$i+1)
                {
                        $cols[] = "&nbsp;";
                }
                $this->filas[$ult][1] = $cols ;
                $this->filas[$ult][2] = $Color ;
                $this->filas[$ult][3] = "";
        }

        function dato( $col, $dato, $alineacion = "0", $ext = "") {
        #------------------------------------------------------------------------
        # Ingresa un dato en la columna indicada y el la ultima fila ingresada.
        #        ext : son parametros extras para la columna <td>.
        #------------------------------------------------------------------------
                $tabulacion = "         ";
                $inicio = $tabulacion;
                $alineacion = strtoupper($alineacion);
                if ($alineacion == "1" or $alineacion == "LEFT") {
                        $inicio .= "<DIV ALIGN='LEFT'>";
                }else{
                        if ($alineacion == "2" or $alineacion == "CENTER") {
                                $inicio .= "<DIV ALIGN='CENTER'>";
                        }else{
                                if ($alineacion == "3" or $alineacion == "RIGHT") {
                                        $inicio .= "<DIV ALIGN='RIGHT'>";
                                }else{
                                        $inicio .= "<DIV ALIGN='LEFT'>";
                                }
                        }
                }
                $fin    = "</DIV>";
                $ult = sizeof($this->filas);
                if (get_class($dato) == false) {
                        $this->filas[$ult][1][$col-1] = $inicio.$dato.$fin;
                }else{
                        $this->filas[$ult][1][$col-1] = $dato;                         # Si es objeto solo copia el objeto en el arreglo.
                        $this->filas[$ult][4][$col-1] = $inicio;
                        $this->filas[$ult][5][$col-1] = $fin;
                }
                $this->filas[$ult][3][$col-1] = $ext;
        }
        function muestra($muestra=0) {
        #------------------------------------------------------------------------
        # Compatibiliza el despliegue de los resultados con las otras clases
        #------------------------------------------------------------------------
                psa_tabla::despliega($muestra);
        }
        
        function despliega($Tipo=0) {
        #------------------------------------------------------------------------
        # Dibuja la tabla con su contenido
        #------------------------------------------------------------------------
                $this->alineacion = strtoupper($this->alineacion);
                if ($this->alineacion == "1" or $this->alineacion == "LEFT") {
                        $this->alineacion = "align='LEFT'";
                }else{
                        if ($this->alineacion == "2" or $this->alineacion == "CENTER") {
                                $this->alineacion = "align='CENTER'";
                        }else{
                                if ($this->alineacion == "3" or $this->alineacion == "RIGHT") {
                                        $this->alineacion = "align='RIGHT'";
                                }else{
                                        $this->alineacion = "";
                                }
                        }
                }
                echo "<table id='psa_tabla_dat' border=".$this->borde." WIDTH='$this->ancho' $this->alineacion $this->extras cellpadding=\"$this->padding\" cellspacing=\"$this->spacing\">\n";
                if (count($this->filas) > 0 ){
                   $contador = 0;
                   foreach($this->filas as $filas){
                      echo "   <tr>\n";
                      $color = $filas[2];
                      $i = 0;
                      foreach($filas[1] as $columnas){
                         $ext = $filas[3][$i];
                         if ($color <> ''){
                            if($contador == 0 && $Tipo == 1){
                               echo "      <th bgcolor='$color' $ext>\n";
                            }else{
                               echo "      <td bgcolor='$color' $ext>\n";
                            }
                         }else{
                            if($contador == 0 && $Tipo == 1){
                               echo "      <th $ext>\n";
                            }else{
                               echo "      <td $ext>\n";
                            }
                              
                         }
                         if (get_class($columnas) == false){
                            echo $columnas."\n";
                         }else{
                            echo $filas[4][$i]."\n";
                            $columnas->muestra();
                            echo $filas[5][$i]."\n";
                         }
                         if($contador == 0 && $Tipo == 1){
                            echo "      </th>\n";
                         }else{
                            echo "      </td>\n";
                         }
                         $i++;
                      }
                      echo "   </td>\n";
                      $contador++;
                   }
                }
                echo "</table>\n";
                echo "<br clear='ALL'>\n";
        }
}
?>